﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Windows;
//using System.Windows.Controls;
//using System.Windows.Media;
//using System.Windows.Media.Imaging;
//using System.Windows.Threading;
//using BTM_Client_Application.SupportClasses;
//using Client_Server_Interface;

//namespace BTM_Client_Application
//{
//    class SpecificTreeViewHeader
//    {
//        private readonly MyDockPanel _panel = new MyDockPanel();
//        public DeviceTreeItem.ItemType ItemType { get; set; }
//        public string Header { get; set; }

//        private SpecificTreeViewHeader()
//        {
            
//        }

//        public static MyDockPanel Create(DeviceTreeItem.ItemType itemType, string header)
//        {
//            var tvh = new SpecificTreeViewHeader(itemType, header);
//            return tvh._panel;
//        }

//        private SpecificTreeViewHeader(DeviceTreeItem.ItemType itemType, string header)
//        {
//            ItemType = itemType;
//            Header = header;
//            _panel = CreateHeaderPanel(itemType, header);
//        }

//        private static MyDockPanel CreateHeaderPanel(DeviceTreeItem.ItemType itemType, string header)
//        {
//            var panel = new MyDockPanel();
//            var headImage = new Image { Stretch = Stretch.None, Margin = new Thickness(3, 3, 0, 3) };
//            var headText = new TextBlock
//                {
//                    Text = header,
//                    VerticalAlignment = VerticalAlignment.Center,
//                    Margin = new Thickness(3, 0, 3, 0)
//                };
//            switch (itemType)
//            {
//                case DeviceTreeItem.ItemType.Region:
//                    headImage.Source = GetImageFromResources("direction_16");
//                    break;
//                case DeviceTreeItem.ItemType.Station:
//                    headImage.Source = GetImageFromResources("antenna_16");
//                    break;
//                case DeviceTreeItem.ItemType.Device:
//                    headImage.Source = GetImageFromResources("device_16");
//                    break;
//            }
//            panel.Children.Add(headImage);
//            panel.Children.Add(headText);
//            panel.DetermineTextBlock();
//            return panel;
//        }

//        private static BitmapImage GetImageFromResources(string resourceName)
//        {
//            var im = new BitmapImage();
//            im.BeginInit();
//            //var f = Application.ResourceAssembly.GetFile("/Images/General/" + resourceName + ".png");
//            im.UriSource = new Uri("pack://application:,,,/BTM_Client_Application;component/Images/General/" + resourceName + ".png");
//            im.EndInit();
//            return im;
//        }

//        public Brush BackGround
//        {
//            get { return _panel.Background; }
//            set
//            {
//                _panel.SetBackground(value);
//            }
//        }

//        public override string ToString()
//        {
//            return _panel.ToString();
//        }
//    }

//    public class MyDockPanel : DockPanel
//    {
//        private TextBlock _tb;

//        private SolidColorBrush _foreground;

//        public SolidColorBrush Foreground
//        {
//            get { return _foreground; }
//            set
//            {
//                _foreground = value;
//                _tb.Foreground = value;
//            }
//        }

//        public MyDockPanel()
//        {
//            _foreground = new SolidColorBrush(Colors.Black);
//            Margin = new Thickness(1, 1, 1, 1);
            
//        }

//        public void DetermineTextBlock()
//        {
//            foreach (var child in Children)
//            {
//                if (child.GetType() == typeof (TextBlock))
//                {
//                    _tb = (child as TextBlock);
//                }
//            }
//        }

//        public void OnDeviceErrorsListChanged(object sender, EventArgs e)
//        {
//            var dev = sender as IDeviceInterface;

//            Dispatcher.Invoke(new Action(() =>
//                {
//                    if (dev.UnreadCount > 0)
//                    {
//                        Background = Res.ErrorBrush;
//                        //_tb.Foreground = new SolidColorBrush(Colors.White);
//                    }
//                    else
//                    {
//                        if (dev.ErrorsList.Count > 0)
//                        {
//                            Background = Res.HaveSeenErrorsBrush; 
//                            _tb.Foreground = Foreground;
//                        }
//                        else
//                        {
//                            Background = Res.OkBrush;
//                            _tb.Foreground = Foreground;
//                        }
//                    }
//                }));
//        }

//        public void SetBackground(Brush brush)
//        {
//            Dispatcher.Invoke(new Action(() =>
//                {
//                    Background = brush;
//                }));
//        }

//        public override string ToString()
//        {
//            return _tb.Text;
//        }
//    }
//}
